Skip to content

docs(crypto-to-fiat): expand comprehensive guide with sandbox access, compliance flows, and implementation details#59

Open
aimensahnoun wants to merge 1 commit into03-02-docs_api-features_migrate_recurring-payments_page_from_legacy_docs_replace_the_ai-generated_recurring_payments_page_with_legacy-aligned_content_while_preserving_mintlify_structure_and_readability._-_removed_ai_warning_and_placehfrom
03-02-docs_api-features_migrate_crypto-to-fiat_page_to_legacy-aligned_content_replace_the_ai-generated_crypto-to-fiat_page_with_legacy_documentation_content_and_preserve_the_original_flow_wording_while_adapting_to_valid_mintlify_mdx_s
Open

docs(crypto-to-fiat): expand comprehensive guide with sandbox access, compliance flows, and implementation details#59
aimensahnoun wants to merge 1 commit into03-02-docs_api-features_migrate_recurring-payments_page_from_legacy_docs_replace_the_ai-generated_recurring_payments_page_with_legacy-aligned_content_while_preserving_mintlify_structure_and_readability._-_removed_ai_warning_and_placehfrom
03-02-docs_api-features_migrate_crypto-to-fiat_page_to_legacy-aligned_content_replace_the_ai-generated_crypto-to-fiat_page_with_legacy_documentation_content_and_preserve_the_original_flow_wording_while_adapting_to_valid_mintlify_mdx_s

Conversation

@aimensahnoun
Copy link
Member

@aimensahnoun aimensahnoun commented Mar 2, 2026

TL;DR

Completely rewrote the crypto-to-fiat payments documentation to provide comprehensive implementation guidance with detailed flows, endpoint references, and practical examples.

What changed?

  • Replaced AI-generated placeholder content with detailed implementation documentation
  • Added comprehensive getting started section with sandbox and production access instructions
  • Introduced clientUserId concept and explanation for user management
  • Added detailed compliance and payer onboarding flow with sequence diagrams
  • Documented payment details setup process for payees with bank account registration
  • Included complete payment flow documentation with webhook event references
  • Added endpoint references for all crypto-to-fiat related API calls
  • Provided design rationale and UX considerations for implementation decisions
  • Added support information for USDC on Ethereum, Polygon, Arbitrum One, and Sepolia
  • Included crosschain payment integration guidance for non-USDC currencies

How to test?

  1. Create an account on the Request Network API Portal
  2. Generate a Sandbox API key with crypto-to-fiat sandbox access
  3. Test the complete flow using Sepolia testnet USDC and mock KYC documents
  4. Follow the sequence diagrams for compliance, payment details, and payment flows
  5. Use the EasyInvoice reference implementation to see the integration in action

Why make this change?

The previous documentation was AI-generated placeholder content that lacked practical implementation details. This rewrite provides developers with actionable guidance, complete API references, and clear flow diagrams needed to successfully integrate crypto-to-fiat payments into their applications.

Update `api-features/crypto-to-fiat-payments.mdx` to remove hardcoded
`docs.request.network` URLs and use Mintlify internal routes instead.
- replaced EasyInvoice reference with `/request-network-api/easyinvoice-api-demo-app`
- replaced crosschain reference with `/api-features/crosschain-payments`
- ensures the page stays self-contained for cutover from legacy docs
Copy link
Member Author

aimensahnoun commented Mar 2, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@aimensahnoun aimensahnoun self-assigned this Mar 2, 2026
@aimensahnoun aimensahnoun changed the title docs(api-features): replace legacy domain links in crypto-to-fiat page Update api-features/crypto-to-fiat-payments.mdx to remove hardcoded docs.request.network URLs and use Mintlify internal routes instead. - replaced EasyInvoice reference with `/requ docs(crypto-to-fiat): expand comprehensive guide with sandbox access, compliance flows, and implementation details Mar 2, 2026
@aimensahnoun aimensahnoun marked this pull request as ready for review March 2, 2026 12:06
@greptile-apps
Copy link

greptile-apps bot commented Mar 2, 2026

Greptile Summary

This PR completely rewrites the crypto-to-fiat payments documentation, replacing AI-generated placeholder content with comprehensive implementation guidance. The new content includes detailed onboarding flows, compliance requirements, endpoint references, and three sequence diagrams showing the complete integration process.

Major improvements:

  • Added comprehensive getting started section with sandbox and production access instructions
  • Introduced clientUserId concept explanation for user management integration
  • Documented complete compliance flow (KYC/Agreement) with sequence diagram
  • Added payment details setup process for payees with sequence diagram
  • Included complete payment flow with webhook event references and sequence diagram
  • Added endpoint references with direct OpenAPI links for all crypto-to-fiat operations
  • Provided design rationale explaining UX decisions in EasyInvoice implementation
  • Added support information for USDC on multiple networks and crosschain payment guidance

Issues found:

  • Minor syntax errors including a typo in Warning component formatting
  • Inconsistent parameter naming ({payerId} vs {clientUserId}) in sequence diagrams
  • Missing version prefix in one endpoint reference
  • Missing participant declaration in payment flow sequence diagram

The documentation follows Mintlify component guidelines and technical writing best practices, providing clear step-by-step guidance for developers integrating crypto-to-fiat payments.

Confidence Score: 4/5

  • This documentation PR is safe to merge after fixing minor syntax errors
  • The PR provides comprehensive, well-structured documentation that significantly improves upon placeholder content. The issues found are purely cosmetic syntax errors (typo, inconsistent naming, missing diagram participant) that don't affect functionality but should be fixed for consistency and correctness.
  • No files require special attention - only minor syntax corrections needed

Important Files Changed

Filename Overview
api-features/crypto-to-fiat-payments.mdx comprehensive documentation rewrite with minor syntax errors (typo, inconsistent parameter naming, missing sequence diagram participant)

Last reviewed commit: 46ae1bb

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 5 comments

Edit Code Review Agent Settings | Greptile


<Warning>
**AI-Generated Content** – This page was generated with AI assistance and may contain inaccuracies. While likely close to accurate, please verify critical details with the [stable documentation](https://docs.request.network) or [contact support](https://github.com/orgs/RequestNetwork/discussions).
I**mportant: Other Payment Types Use Real Funds**
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in formatting - "I**mportant:" should be "**Important:"

Suggested change
I**mportant: Other Payment Types Use Real Funds**
**Important: Other Payment Types Use Real Funds**

RequestAPI-->>Platform: webhook: compliance.updated (kycStatus: pending/approved/rejected/failed)
Platform->>Payer: Show iframe for agreement signature
Payer->>Platform: Completes signature
Platform->>RequestAPI: PATCH /payer/{payerId} (agreement_status: completed)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inconsistent parameter naming - uses {payerId} but should be {clientUserId} per the "Understanding clientUserId" section

Suggested change
Platform->>RequestAPI: PATCH /payer/{payerId} (agreement_status: completed)
Platform->>RequestAPI: PATCH /payer/{clientUserId} (agreement_status: completed)


### Relevant Endpoints

* `POST /payer`: Submit KYC application.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing version prefix - should be /v2/payer for consistency with line 136

Suggested change
* `POST /payer`: Submit KYC application.
* `POST /v2/payer`: Submit KYC application.

participant RequestTech

Payee->>Platform: Submit bank info via Bank Account Form
Platform->>RequestAPI: POST /payer/{payerId}/payment-details (bank info)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inconsistent parameter naming - uses {payerId} but should be {clientUserId} per the "Understanding clientUserId" section

Suggested change
Platform->>RequestAPI: POST /payer/{payerId}/payment-details (bank info)
Platform->>RequestAPI: POST /payer/{clientUserId}/payment-details (bank info)

Comment on lines +225 to +239
```mermaid
sequenceDiagram
participant Payer
participant Platform
participant RequestAPI
participant RequestTech
participant Blockchain

Platform->>RequestAPI: GET payment calldata for request/{requestId}/pay
Platform->>Payer: Prompt to sign and send transaction
Payer->>Blockchain: Send crypto to Request Tech
Blockchain-->>RequestTech: Payment received
RequestTech-->>RequestAPI: offramp_update (webhook)
RequestAPI-->>Platform: webhook: payment.processing/payment.failed (subStatus: initiated, ongoing_checks, sending_fiat, fiat_sent, failed, etc.)
RequestTech->>Payee Bank: Offramp and deposit fiat
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing participant declaration - "Payee Bank" is used on line 239 but not declared in the participant list

Suggested change
```mermaid
sequenceDiagram
participant Payer
participant Platform
participant RequestAPI
participant RequestTech
participant Blockchain
Platform->>RequestAPI: GET payment calldata for request/{requestId}/pay
Platform->>Payer: Prompt to sign and send transaction
Payer->>Blockchain: Send crypto to Request Tech
Blockchain-->>RequestTech: Payment received
RequestTech-->>RequestAPI: offramp_update (webhook)
RequestAPI-->>Platform: webhook: payment.processing/payment.failed (subStatus: initiated, ongoing_checks, sending_fiat, fiat_sent, failed, etc.)
RequestTech->>Payee Bank: Offramp and deposit fiat
sequenceDiagram
participant Payer
participant Platform
participant RequestAPI
participant RequestTech
participant Blockchain
participant Payee Bank
Platform->>RequestAPI: GET payment calldata for request/{requestId}/pay
Platform->>Payer: Prompt to sign and send transaction
Payer->>Blockchain: Send crypto to Request Tech
Blockchain-->>RequestTech: Payment received
RequestTech-->>RequestAPI: offramp_update (webhook)
RequestAPI-->>Platform: webhook: payment.processing/payment.failed (subStatus: initiated, ongoing_checks, sending_fiat, fiat_sent, failed, etc.)
RequestTech->>Payee Bank: Offramp and deposit fiat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant